//package com.sinothk.gpserver.util;
//
///**
// * 编写 Liang Y.T.
// * 时间 2021/8/25 23:48
// */
//
//import com.baomidou.mybatisplus.annotation.FieldFill;
//import com.baomidou.mybatisplus.annotation.IdType;
//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.*;
//import com.baomidou.mybatisplus.generator.config.po.TableFill;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
//import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
//
//import java.util.ArrayList;
//import java.util.List;
//
//public class MysqlGenerator {
//
//
//    public static void main(String[] args) {
//        AutoGenerator mpg = new AutoGenerator();
//        //1、全局配置
//        GlobalConfig gc = new GlobalConfig();
//        String projectPath = System.getProperty("user.dir");
//        gc.setOutputDir(projectPath + "/src/main/java");  //生成路径(一般都是生成在此项目的src/main/java下面)
//        gc.setAuthor("Liang Y.t."); //设置作者
//        gc.setOpen(false);
//        gc.setFileOverride(true); //第二次生成会把第一次生成的覆盖掉
//        gc.setSwagger2(true);
//        gc.setMapperName("%sMapper");
//        gc.setEntityName("%sEntity");
//        gc.setServiceName("I%sService"); //生成的service接口名字首字母是否为I，这样设置就没有
//        gc.setBaseResultMap(true); //生成resultMap
//        gc.setIdType(IdType.ASSIGN_ID);
//        mpg.setGlobalConfig(gc);
//
//        //2、数据源配置
//        String pkg = "com.sinothk.gpserver.modules";
//
//        DataSourceConfig dsc = new DataSourceConfig();
//        dsc.setUrl("jdbc:mysql://101.34.162.114:3306/games_db?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai");
//        dsc.setDriverName("com.mysql.cj.jdbc.Driver");
//        dsc.setUsername("game");
//        dsc.setPassword("game@2021!");
//        mpg.setDataSource(dsc);
//
//        // 3、包配置
//        PackageConfig pc = new PackageConfig();
//        pc.setModuleName("biz");
////        pc.setModuleName("system");
//        pc.setParent(pkg);
//        mpg.setPackageInfo(pc);
//
//        // 4、策略配置
//        StrategyConfig strategy = new StrategyConfig();
//        strategy.setNaming(NamingStrategy.underline_to_camel);
//        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//        strategy.setSuperControllerClass(pkg + ".base.controller.BaseController");
//        strategy.setSuperEntityClass(pkg + ".base.entity.BaseEntity");
//        strategy.setTablePrefix("sys_", "biz_"); // 表名前缀
//        strategy.setEntityLombokModel(true); //使用lombok
//        strategy.setEntitySerialVersionUID(true);// 实体类的实现接口Serializable
//        strategy.setRestControllerStyle(true);
//        strategy.setInclude("biz_group_coins_log");  // 逆向工程使用的表   如果要生成多个,这里可以传入String[] "user",
//        strategy.setLogicDeleteFieldName("deleted");
//
//        // 表的自动填充字段
//        List<TableFill> tableFills = new ArrayList<>();
//        TableFill createTime = new TableFill("create_time", FieldFill.INSERT);
//        TableFill updateTime = new TableFill("update_time", FieldFill.INSERT_UPDATE);
////        TableFill updateName = new TableFill("update_name", FieldFill.INSERT_UPDATE);
////        TableFill updateId = new TableFill("update_id", FieldFill.INSERT_UPDATE);
//        tableFills.add(createTime);
//        tableFills.add(updateTime);
////        tableFills.add(updateName);
////        tableFills.add(updateId);
//        strategy.setTableFillList(tableFills);
//
//        mpg.setStrategy(strategy);
//
//        // 配置模板
//        TemplateConfig templateConfig = new TemplateConfig();
//        // 配置自定义输出模板
//        //指定自定义模板路径，注意不要带上.ftl/.vm, 会根据使用的模板引擎自动识别
////        templateConfig.setEntity("templates/entity2.java");
//        templateConfig.setController("templates/controller.java");
//        templateConfig.setService("templates/service.java");
//        templateConfig.setServiceImpl("templates/serviceImpl.java");
//
//        templateConfig.setXml(null);
//        mpg.setTemplate(templateConfig);
////        cfg.setFileOutConfigList(focList);
//
////        mpg.setCfg(cfg);
//        mpg.setTemplateEngine(new FreemarkerTemplateEngine());
//        //5、执行
//        mpg.execute();
//    }
//
//}
